package com.ken.myRule;


import com.ken.springcloud.anno.RemarkInfo;
import com.ken.springcloud.enums.UsedComponent;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.cloud.netflix.ribbon.RibbonClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * <ul>
 * <li>Title: KenRule</li>
 * <li>Description: TODO </li>
 * </ul>
 *
 * @author swc
 * @date 2021-08-27 16:48
 */

@Configuration
//这个不能跟主启动类同级 （官网它不在主应用程序上下文的@ComponentScan中，否则将由所有@RibbonClients共享。如果您使用@ComponentScan（或@SpringBootApplication），则需要采取措施避免包含（例如将其放在一个单独的，不重叠的包中，或者指定要在@ComponentScan））
public class KenRuleConfiguration {


    @RemarkInfo(usedComponent = {UsedComponent.Ribbon},remark = "自定义负载均衡")
    @Bean
    public IRule myRule(){
        return  new MyRandomRule();//实现自定义的“算法”
    }


}

